package models

// 管理员更新用户状态请求
type UpdateUserStatusRequest struct {
	Status UserStatus `json:"status" binding:"required"` // 用户状态
}

// 管理员更新课题状态请求
type UpdateProjectStatusRequest struct {
	Status ProjectStatus `json:"status" binding:"required"` // 课题状态
}

// 管理员更新申请状态请求（包含反馈）
type AdminUpdateApplicationStatusRequest struct {
	Status   ApplicationStatus `json:"status" binding:"required"` // 申请状态
	Feedback string            `json:"feedback"`                  // 反馈意见
}

// AdminManualMatchRequest 管理员手动匹配请求
type AdminManualMatchRequest struct {
	ProjectID uint    `json:"project_id" binding:"required"` // 课题ID
	UserID    uint    `json:"user_id" binding:"required"`    // 用户ID
	MatchScore float64 `json:"match_score"`                   // 匹配分数（可选）
	Note      string  `json:"note"`                          // 匹配备注（可选）
}

// AdminManualMatchResponse 管理员手动匹配响应
type AdminManualMatchResponse struct {
	MatchID    uint   `json:"match_id"`
	ProjectID  uint   `json:"project_id"`
	UserID     uint   `json:"user_id"`
	Message    string `json:"message"`
}

// AdminGetMatchCandidatesRequest 获取匹配候选者请求
type AdminGetMatchCandidatesRequest struct {
	ProjectID uint `json:"project_id" binding:"required"` // 课题ID
	Role      string `json:"role"`                        // 用户角色（student或tutor）
}

// AdminGetProjectCandidatesRequest 获取课题候选者请求
type AdminGetProjectCandidatesRequest struct {
	UserID uint `json:"user_id" binding:"required"` // 用户ID
}
